#ifndef ATOOLS_Phys_Flavour_Tags_H
#define ATOOLS_Phys_Flavour_Tags_H

// standard model
#define      kf_d                         1
#define      kf_u                         2
#define      kf_s                         3
#define      kf_c                         4
#define      kf_b                         5
#define      kf_t                         6
#define      kf_D4                        7
#define      kf_U4                        8
#define      kf_e                         11
#define      kf_nue                       12
#define      kf_mu                        13
#define      kf_numu                      14
#define      kf_tau                       15
#define      kf_nutau                     16
#define      kf_L4                        17
#define      kf_Nu4                       18
#define      kf_gluon                     21
#define      kf_photon                    22
#define      kf_Z                         23
#define      kf_Wplus                     24
#define      kf_h0                        25
#define      kf_Z0_2                      32
#define      kf_Z0_3                      33
#define      kf_Wplus_2                   34
#define      kf_H0                        35
#define      kf_A0                        36
#define      kf_Hplus                     37
#define      kf_Hplusplus                 38
#define      kf_graviton                  39
#define      kf_gscalar                   40
#define      kf_DM_scalar                 51
#define      kf_DM_fermion                52
#define      kf_DM_vector                 53
#define      kf_DM_mediator_scalar        54
#define      kf_DM_mediator_vector        55
// internal
#define      kf_shgluon                   89
#define      kf_lepton                    90
#define      kf_neutrino                  91
#define      kf_fermion                   92
#define      kf_jet                       93
#define      kf_quark                     94
#define      kf_string                    95
#define      kf_cluster                   96
#define      kf_bjet                      97
#define      kf_ewjet                     98
#define      kf_gluon_qgc                 921
// photons helpers for indeterminant resonances
#define      kf_PhotonsHelperNeutral      931
#define      kf_PhotonsHelperPlus         932
#define      kf_PhotonsHelperPlusPlus     933
#define      kf_PhotonsHelperPlusPlusPlus 934
// Regge stuff
#define      kf_reggeon                   110
#define      kf_pomeron                   990
#define      kf_instanton                 999
// susy
#define      kf_Chargino1                 1000024
#define      kf_Chargino2                 1000037
#define      kf_Neutralino1               1000022
#define      kf_Neutralino2               1000023
#define      kf_Neutralino3               1000025
#define      kf_Neutralino4               1000035
#define      kf_Gluino                    1000021
#define      kf_sUpL                      1000002
#define      kf_sCharmL                   1000004
#define      kf_sTop1                     1000006
#define      kf_sUpR                      2000002
#define      kf_sCharmR                   2000004
#define      kf_sTop2                     2000006
#define      kf_sDownL                    1000001
#define      kf_sStrangeL                 1000003
#define      kf_sBottom1                  1000005
#define      kf_sDownR                    2000001
#define      kf_sStrangeR                 2000003
#define      kf_sBottom2                  2000005
#define      kf_sElectronL                1000011
#define      kf_sMuL                      1000013
#define      kf_sTau1                     1000015
#define      kf_sElectronR                2000011
#define      kf_sMuR                      2000013
#define      kf_sTau2                     2000015
#define      kf_sNu1                      1000012
#define      kf_sNu2                      1000014
#define      kf_sNu3                      1000016
// kk states
#define      kf_KK_dL_1                   5100001
#define      kf_KK_uL_1                   5100002
#define      kf_KK_sL_1                   5100003
#define      kf_KK_cL_1                   5100004
#define      kf_KK_b2_1                   5100005
#define      kf_KK_t2_1                   5100006
#define      kf_KK_eL_1                   5100011
#define      kf_KK_nueL_1                 5100012
#define      kf_KK_muL_1                  5100013
#define      kf_KK_numuL_1                5100014
#define      kf_KK_tau2_1                 5100015
#define      kf_KK_nutauL_1               5100016
#define      kf_KK_gluon_1                5100021
#define      kf_KK_B1_1                   5100022
#define      kf_KK_W_1                    5100023
#define      kf_KK_W3_1                   5100024
#define      kf_KK_H_1                    5100035
#define      kf_KK_A_1                    5100036
#define      kf_KK_Hplus_1                5100037
#define      kf_KK_dR_1                   6100001
#define      kf_KK_uR_1                   6100002
#define      kf_KK_sR_1                   6100003
#define      kf_KK_cR_1                   6100004
#define      kf_KK_b1_1                   6100005
#define      kf_KK_t1_1                   6100006
#define      kf_KK_eR_1                   6100011
#define      kf_KK_muR_1                  6100013
#define      kf_KK_tau1_1                 6100015
#define      kf_KK_dL_2                   5200001
#define      kf_KK_uL_2                   5200002
#define      kf_KK_sL_2                   5200003
#define      kf_KK_cL_2                   5200004
#define      kf_KK_b2_2                   5200005
#define      kf_KK_t2_2                   5200006
#define      kf_KK_eL_2                   5200011
#define      kf_KK_nueL_2                 5200012
#define      kf_KK_muL_2                  5200013
#define      kf_KK_numuL_2                5200014
#define      kf_KK_tau2_2                 5200015
#define      kf_KK_nutauL_2               5200016
#define      kf_KK_gluon_2                5200021
#define      kf_KK_B1_2                   5200022
#define      kf_KK_W_2                    5200023
#define      kf_KK_W3_2                   5200024
#define      kf_KK_H_2                    5200035
#define      kf_KK_A_2                    5200036
#define      kf_KK_Hplus_2                5200037
#define      kf_KK_dR_2                   6200001
#define      kf_KK_uR_2                   6200002
#define      kf_KK_sR_2                   6200003
#define      kf_KK_cR_2                   6200004
#define      kf_KK_b1_2                   6200005
#define      kf_KK_t1_2                   6200006
#define      kf_KK_eR_2                   6200011
#define      kf_KK_muR_2                  6200013
#define      kf_KK_tau1_2                 6200015
// diquarks
#define      kf_dd_1                      1103
#define      kf_ud_0                      2101
#define      kf_ud_1                      2103
#define      kf_uu_1                      2203
#define      kf_sd_0                      3101
#define      kf_sd_1                      3103
#define      kf_su_0                      3201
#define      kf_su_1                      3203
#define      kf_ss_1                      3303
#define      kf_cd_0                      4101
#define      kf_cd_1                      4103
#define      kf_cu_0                      4201
#define      kf_cu_1                      4203
#define      kf_cs_0                      4301
#define      kf_cs_1                      4303
#define      kf_cc_1                      4403
#define      kf_bd_0                      5101
#define      kf_bd_1                      5103
#define      kf_bu_0                      5201
#define      kf_bu_1                      5203
#define      kf_bs_0                      5301
#define      kf_bs_1                      5303
#define      kf_bc_0                      5401
#define      kf_bc_1                      5403
#define      kf_bb_1                      5503   
// hadrons
#define      kf_pi                        111
#define      kf_K_L                       130
#define      kf_pi_plus                   211
#define      kf_eta                       221
#define      kf_K_S                       310
#define      kf_K                         311
#define      kf_K_plus                    321
#define      kf_eta_prime_958             331
#define      kf_D_plus                    411
#define      kf_D                         421
#define      kf_D_s_plus                  431
#define      kf_eta_c_1S                  441
#define      kf_B                         511
#define      kf_B_plus                    521
#define      kf_B_s                       531
#define      kf_B_c                       541
#define      kf_eta_b                     551
#define      kf_rho_770                   113
#define      kf_rho_770_plus              213
#define      kf_omega_782                 223
#define      kf_K_star_892                313
#define      kf_K_star_892_plus           323
#define      kf_phi_1020                  333
#define      kf_D_star_2010_plus          413
#define      kf_D_star_2007               423
#define      kf_D_s_star_plus             433
#define      kf_J_psi_1S                  443
#define      kf_B_star                    513
#define      kf_B_star_plus               523
#define      kf_B_s_star                  533
#define      kf_B_c_star                  543
#define      kf_Upsilon_1S                553
#define      kf_a_2_1320                  115
#define      kf_a_2_1320_plus             215
#define      kf_f_2_1270                  225
#define      kf_K_2_star_1430             315
#define      kf_K_2_star_1430_plus        325
#define      kf_f_2_prime_1525            335
#define      kf_D_2_star_2460_plus        415
#define      kf_D_2_star_2460             425
#define      kf_D_s2_star_2573            435
#define      kf_chi_c2_1P                 445
#define      kf_B_2_star                  515
#define      kf_B_2_star_plus             525
#define      kf_B_s2_star                 535
#define      kf_B_c2_star                 545
#define      kf_chi_b2_1P                 555
#define      kf_rho_3_1690                117
#define      kf_rho_3_1690_plus           217
#define      kf_omega_3_1670              227
#define      kf_K_3_star_1780             317
#define      kf_K_3_star_1780_plus        327
#define      kf_phi_3_1850                337
#define      kf_a_4_2040                  119
#define      kf_a_4_2040_plus             219
#define      kf_f_4_2050                  229
#define      kf_K_4_star_2045             319
#define      kf_K_4_star_2045_plus        329
#define      kf_f_J_2220                  339
#define      kf_a_0_980                   9000111
#define      kf_a_0_980_plus              9000211
#define      kf_f_0_980                   9010221
#define      kf_K_0_star_1430             10311
#define      kf_K_0_star_1430_plus        10321
#define      kf_f_0_1370                  10221
#define      kf_D_0_star_plus             10411
#define      kf_D_0_star                  10421
#define      kf_D_s0_star                 10431
#define      kf_chi_c0_1P                 10441
#define      kf_B_0_star                  10511
#define      kf_B_0_star_plus             10521
#define      kf_B_s0_star                 10531
#define      kf_B_c0_star                 10541
#define      kf_chi_b0_1P                 10551
#define      kf_b_1_1235                  10113
#define      kf_b_1_1235_plus             10213
#define      kf_h_1_1170                  10223
#define      kf_K_1_1270                  10313
#define      kf_K_1_1270_plus             10323
#define      kf_h_1_1380                  10333
#define      kf_D_1_2420_plus             10413
#define      kf_D_1_2420                  10423
#define      kf_D_s1_2536_plus            10433
#define      kf_h_c1                      10443
#define      kf_B_1                       10513
#define      kf_B_1_plus                  10523
#define      kf_B_s1                      10533
#define      kf_B_c1                      10543
#define      kf_h_b1                      10553
#define      kf_pi_2_1670                 10115
#define      kf_pi_2_1670_plus            10215
#define      kf_eta_2_1645                10225
#define      kf_K_2_1770                  10315
#define      kf_K_2_1770_plus             10325
#define      kf_eta_2_1870                10335
#define      kf_a_1_1260                  20113
#define      kf_a_1_1260_plus             20213
#define      kf_f_1_1285                  20223
#define      kf_K_1_1400                  20313
#define      kf_K_1_1400_plus             20323
#define      kf_f_1_1420                  20333
#define      kf_D_1_H_plus                20413
#define      kf_D_1_H                     20423
#define      kf_D_s1_H                    20433
#define      kf_B_1_H                     20513
#define      kf_B_1_H_plus                20523
#define      kf_B_s1_H                    20533
#define      kf_B_c1_H                    20543
#define      kf_chi_c1_1P                 20443
#define      kf_chi_b1_1P                 20553
#define      kf_K_2_1820                  20315
#define      kf_K_2_1820_plus             20325
#define      kf_rho_1700                  30113
#define      kf_rho_1700_plus             30213
#define      kf_omega_1600                30223
#define      kf_K_star_1680               30313
#define      kf_K_star_1680_plus          30323
#define      kf_f1_1900_fict              30333
#define      kf_psi_3770                  30443
#define      kf_pi_1300                   100111
#define      kf_pi_1300_plus              100211
#define      kf_eta_1295                  100221
#define      kf_K_1460                    100311
#define      kf_K_1460_plus               100321
#define      kf_eta_1475                  100331
#define      kf_rho_1450                  100113
#define      kf_rho_1450_plus             100213
#define      kf_omega_1420                100223
#define      kf_K_star_1410               100313
#define      kf_K_star_1410_plus          100323
#define      kf_phi_1680                  100333
#define      kf_psi_2S                    100443
#define      kf_Upsilon_2S                100553
#define      kf_f_2_2010                  100335
#define      kf_chi_b2_2P                 100555
#define      kf_chi_b0_2P                 110551
#define      kf_chi_b1_2P                 120553
#define      kf_Upsilon_3S                200553
#define      kf_Upsilon_4S                300553
#define      kf_a_0_1450                  10111
#define      kf_a_0_1450_plus             10211
#define      kf_f_0_600                   9000221
#define      kf_psi_4040                  9000443
#define      kf_Upsilon_10860             9000553
#define      kf_f_0_1710                  10331
#define      kf_psi_4160                  9010443
#define      kf_Upsilon_11020             9010553
#define      kf_f_0_1500                  9020221
#define      kf_psi_4415                  9020443
#define      kf_f_J_1710                  9030221
#define      kf_f_2_2300                  9050225
#define      kf_f_2_2340                  9060225
#define      kf_n                         2112
#define      kf_p_plus                    2212
#define      kf_Sigma_minus               3112
#define      kf_Lambda                    3122
#define      kf_Sigma                     3212
#define      kf_Sigma_plus                3222
#define      kf_Xi_minus                  3312
#define      kf_Xi                        3322
#define      kf_Sigma_c_2455              4112
#define      kf_Lambda_c_plus             4122
#define      kf_Sigma_c_2455_plus         4212
#define      kf_Sigma_c_2455_plus_plus    4222
#define      kf_Xi_c_2466                 4132
#define      kf_Xi_c_2466_plus            4232
#define      kf_Xi_c_2574                 4312
#define      kf_Xi_c_2574_plus            4322
#define      kf_Omega_c_0                 4332
#define      kf_Sigma_b_5820_minus        5112
#define      kf_Lambda_b                  5122
#define      kf_Sigma_b_5820              5212
#define      kf_Sigma_b_5820_plus         5222
#define      kf_Xi_b_5840                 5132
#define      kf_Xi_b_5840_minus           5232
#define      kf_Xi_b_5960                 5312
#define      kf_Xi_b_5960_minus           5322
#define      kf_Omega_b_0                 5332
#define      kf_Delta_1232_minus          1114
#define      kf_Delta_1232                2114
#define      kf_Delta_1232_plus           2214
#define      kf_Delta_1232_plus_plus      2224
#define      kf_Sigma_1385_minus          3114
#define      kf_Sigma_1385                3214
#define      kf_Sigma_1385_plus           3224
#define      kf_Xi_1530_minus             3314
#define      kf_Xi_1530                   3324
#define      kf_Omega_minus               3334
#define      kf_Sigma_c_2520              4114
#define      kf_Lambda_c_2625_plus        4124
#define      kf_Sigma_c_2520_plus         4214
#define      kf_Sigma_c_2520_plus_plus    4224
#define      kf_Xi_c_2645                 4314
#define      kf_Xi_c_2645_plus            4324
#define      kf_Omega_c_star              4334
#define      kf_Sigma_b_5840_minus        5114
#define      kf_Lambda_b_5940             5124
#define      kf_Sigma_b_5840              5214
#define      kf_Sigma_b_5840_plus         5224
#define      kf_Xi_b_5940                 5314
#define      kf_Xi_b_5940_minus           5324
#define      kf_Omega_b_star              5334
#define      kf_N_1535                  102112
#define      kf_N_1535_plus             102212
#define      kf_Lambda_1405             102132
#define      kf_Sigma_1620_minus        103112
#define      kf_Lambda_1670             103122
#define      kf_Sigma_1620              103212
#define      kf_Sigma_1620_plus         103222
#define      kf_Xi_1750_minus           103312
#define      kf_Xi_1750                 103322
#define      kf_N_1520                  102114
#define      kf_N_1520_plus             102214
#define      kf_Lambda_1520             102134
#define      kf_Sigma_1670_minus        103114
#define      kf_Lambda_1690             103124
#define      kf_Sigma_1670              103214
#define      kf_Sigma_1670_plus         103224
#define      kf_Xi_1820_minus           103314
#define      kf_Xi_1820                 103324
#define      kf_N_1440                  202112
#define      kf_N_1440_plus             202212
#define      kf_Sigma_1660_minus        203112
#define      kf_Lambda_1600             203122
#define      kf_Sigma_1660              203212
#define      kf_Sigma_1660_plus         203222
#define      kf_Xi_1690_minus           203312
#define      kf_Xi_1690                 203322
// #define      kf_Sigma_c_2455            204112
// #define      kf_Lambda_c_plus           204122
// #define      kf_Sigma_c_2455_plus       204212
// #define      kf_Sigma_c_2455_plus_plus  204222
// #define      kf_Xi_c_2466               204132
// #define      kf_Xi_c_2466_plus          204232
// #define      kf_Xi_c_2574               204312
// #define      kf_Xi_c_2574_plus          204322
// #define      kf_Omega_c_0               204332
// #define      kf_Sigma_b_5820_minus      205212
// #define      kf_Lambda_b                205122
// #define      kf_Sigma_b_5820            205212
// #define      kf_Sigma_b_5820_plus       205222
// #define      kf_Xi_b_5840               205132
// #define      kf_Xi_b_5840_minus         205232
// #define      kf_Xi_b_5960               205312
// #define      kf_Xi_b_5960_minus         205322
// #define      kf_Omega_b_0               205332

#endif
